home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / pvm34b3.zip / pvm34b3 / pvm3 / src / Makefile.aimk < prev    next >
Makefile  |  1997-07-22  |  10KB  |  370 lines

  1. #
  2. # $Id: Makefile.aimk,v 1.25 1997/06/26 21:19:22 pvmsrc Exp $
  3. #
  4. # Generic Makefile body to be concatenated to config header.
  5. #
  6. # Imports:
  7. #  PVM_ARCH   = the official pvm-name of your processor
  8. #  ARCHCFLAGS = special cc flags
  9. #  ARCHDLIB   = special libs needed for daemon
  10. #  ARCHDOBJ   = special objects needed for daemon
  11. #  HASRANLIB  = 't' or 'f'
  12. #
  13. # Compatibility defines (usually in conf/*.def):
  14. #  FDSETPATCH      if system includes don't have fd_set stuff
  15. #  HASERRORVARS    if errno, sys_nerr, sys_errlist already declared
  16. #  HASSTDLIB       if system has stdlib.h
  17. #  NEEDENDIAN      to include <endian.h>
  18. #  NEEDMENDIAN     to include <machine/endian.h>
  19. #  NOGETDTBLSIZ    if system doesn't have getdtablesize()
  20. #  NOREXEC         if system doesn't have rexec()
  21. #  NOSOCKOPT       if system doesn't have setsockopt() / it doesn't work
  22. #  NOSTRCASE       if system doesn't have strcasecmp, strncasecmp
  23. #  NOTMPNAM        if system doesn't have tmpnam() or it's hosed
  24. #  NOUNIXDOM       to disable use of Unix domain sockets
  25. #  NOWAIT3         if system doesn't have wait3()
  26. #  NOWAITPID       if system doesn't have waitpid() either
  27. #  RSHCOMMAND=     for rsh command other than "/usr/ucb/rsh"
  28. #  SHAREDTMP       if /tmp is shared between machines (yecch)
  29. #  SOCKADHASLEN    if struct sockaddr has an sa_len field
  30. #  SYSVBFUNC       if system uses memcpy() instead of bcopy(), etc.
  31. #  SYSVSIGNAL      if system has sysV signal handling
  32. #  SYSVSTR         if system uses strchr() instead of index()
  33. #  UDPMAXLEN=      for alternate max udp packet size
  34. #  NEEDSSELECTH    if you need to include select.h to get fd_set (IBMs)
  35. #  SOCKLENISUINT   if socket parameter is unsigned int,
  36. #                      generally ->  recvfrom() accept() getsockname()
  37. #                      remove flag for AIX 4.1 compiler complaints...
  38. #
  39. # Options defines:
  40. #  CLUMP_ALLOC     allocates several data structures in big chunks
  41. #  MCHECKSUM       to enable crc checksums on messages
  42. #  RSHNPLL=        for number of parallel rsh startups (default is 5)
  43. #  RSHTIMEOUT=     for rsh timeout other than default (60 sec)
  44. #  STATISTICS      to enable collection of statistics in pvmd
  45. #  TIMESTAMPLOG    to enable timestamps in pvmd log file
  46. #  USE_PVM_ALLOC   to enable instrumented malloc functs (for pvm debug)
  47. #
  48.  
  49. SHELL        =    /bin/sh
  50. PVMDIR        =    ../..
  51. SDIR        =    $(PVMDIR)/src
  52. LIBDIR        =    $(PVMDIR)/lib/$(PVM_ARCH)
  53. #CFLOPTS    =    -O
  54. CFLOPTS        =    -g
  55. #OPTIONS    =    -DCLUMP_ALLOC
  56. #OPTIONS    =    -DSTATISTICS
  57. #OPTIONS    =    -p
  58. OPTIONS        =    -DCLUMP_ALLOC -DSTATISTICS \
  59.                 -DTIMESTAMPLOG -DSANITY
  60. CFLAGS        =    $(CFLOPTS) $(OPTIONS) -I$(PVMDIR)/include \
  61.                 -DARCHCLASS=\"$(PVM_ARCH)\" -DIMA_$(PVM_ARCH) \
  62.                 $(ARCHCFLAGS)
  63.  
  64. DOBJ        = \
  65.     ddpro.o \
  66.     host.o \
  67.     hoster.o \
  68.     imalloc.o \
  69.     msgbox.o \
  70.     pkt.o \
  71.     pmsg.o \
  72.     pvmalloc.o \
  73.     pvmcruft.o \
  74.     pvmd.o \
  75.     pvmdpack.o \
  76.     pvmdtev.o \
  77.     pvmerr.o \
  78.     pvmfrag.o \
  79.     pvmlog.o \
  80.     sdpro.o \
  81.     task.o \
  82.     tdpro.o \
  83.     waitc.o \
  84.     pvmregex.o \
  85.     regex.o \
  86.     global.o
  87.  
  88. SOCKDOBJ    = \
  89.     pvmdabuf.o \
  90.     pvmdunix.o
  91.  
  92. SHMEMDOBJ    = \
  93.     $(AMEMOBJ) \
  94.     nmdclass.o \
  95.     pvmdshmem.o \
  96.     pvmshmem.o
  97.  
  98. MPPDOBJ        = \
  99.     mppchunkhost.o \
  100.     mppmsghost.o \
  101.     lmsg.o \
  102.     pvmdabuf.o \
  103.     pvmdmimd.o \
  104.     pvmdunix.o
  105.  
  106. LOBJ        = \
  107.     imalloc.o \
  108.     tev.o \
  109.     lpvmcat.o \
  110.     lpvmgen.o \
  111.     lpvmpack.o \
  112.     lpvmglob.o \
  113.     pmsg.o \
  114.     pvmalloc.o \
  115.     pvmcruft.o \
  116.     pvmerr.o \
  117.     pvmfrag.o \
  118.     waitc.o \
  119.     pvmregex.o \
  120.     regex.o \
  121.     global.o
  122.  
  123. LPVMSOCK    =    lpvm.o
  124.  
  125. SOCKLOBJ    = \
  126.     pvmdabuf.o
  127.  
  128. LPVMSHMEM    =    lpvmshmem.o
  129.  
  130. SHMEMLOBJ    = \
  131.     $(AMEMOBJ) \
  132.     pvmshmem.o
  133.  
  134. LPVMMIMD    =    lpvmmimd.o
  135.  
  136. MPPLOBJ        = \
  137.     mppchunknode.o \
  138.     mppmsgnode.o \
  139.     lmsg.o \
  140.     lpvmmpp.o \
  141.     pvmdabuf.o
  142.  
  143. REGEXSRC    = \
  144.     $(SDIR)/regex/Makefile.in \
  145.     $(SDIR)/regex/configure \
  146.     $(SDIR)/regex/configure.in \
  147.     $(SDIR)/regex/pvmregex.c \
  148.     $(SDIR)/regex/regex.c \
  149.     $(SDIR)/regex/regex.h
  150.  
  151. REGEXDIR    =    ./regex
  152.  
  153. REGEXCP        = \
  154.     $(REGEXDIR)/Makefile.in \
  155.     $(REGEXDIR)/configure \
  156.     $(REGEXDIR)/configure.in \
  157.     $(REGEXDIR)/pvmregex.c \
  158.     $(REGEXDIR)/regex.c \
  159.     $(REGEXDIR)/regex.h
  160.  
  161. REGEXOPTS    =    CC=$(CC) \
  162.                 CFLAGS="$(CFLOPTS) -DREGEX_MALLOC $(ARCHCFLAGS)"
  163.  
  164. SHMEMTARGETS    =    $(LIBDIR)/pvmd3-shm \
  165.                     $(LIBDIR)/lib-shm $(LIBDIR)/libpvm3s.a
  166.  
  167. MPPTARGETS        =    $(LIBDIR)/pvmd3-mpp \
  168.                     $(LIBDIR)/libpvm3.a $(LIBDIR)/libpvm3pe.a
  169.  
  170. all:    pvmd3 libpvm3.a
  171.  
  172. all-shm:    pvmd3-shm lib-shm libpvm3s.a
  173.  
  174. all-mpp:    pvmd3-mpp libpvm3.a libpvm3pe.a
  175.  
  176. install:    $(LIBDIR) $(LIBDIR)/pvmd3 $(LIBDIR)/libpvm3.a
  177.  
  178. install-shm:    $(LIBDIR) $(SHMEMTARGETS)
  179.  
  180. install-mpp:    $(LIBDIR) $(MPPTARGETS)
  181.  
  182. $(LIBDIR):
  183.     - mkdir $(LIBDIR)
  184.  
  185. $(LIBDIR)/pvmd3:    pvmd3
  186.     cp pvmd3 $(LIBDIR)
  187.  
  188. $(LIBDIR)/libpvm3.a:    libpvm3.a
  189.     cp libpvm3.a $(LIBDIR)
  190.  
  191. $(LIBDIR)/pvmd3-shm:    pvmd3-shm
  192.     cp pvmd3 $(LIBDIR)
  193.     touch $(LIBDIR)/pvmd3-shm
  194.  
  195. $(LIBDIR)/lib-shm:    lib-shm
  196.     cp libpvm3.a $(LIBDIR)
  197.     touch $(LIBDIR)/lib-shm
  198.  
  199. $(LIBDIR)/libpvm3s.a:  libpvm3s.a
  200.     cp libpvm3s.a $(LIBDIR)/libpvm3s.a
  201.  
  202. $(LIBDIR)/pvmd3-mpp:    pvmd3-mpp
  203.     cp pvmd3 $(LIBDIR)
  204.     touch $(LIBDIR)/pvmd3-mpp
  205.  
  206. $(LIBDIR)/libpvm3pe.a:    libpvm3pe.a
  207.     cp libpvm3pe.a $(LIBDIR)
  208.  
  209. pvmd3:    $(REGEXDIR) $(DOBJ) $(SOCKDOBJ)
  210.     $(CC) $(CFLAGS) -o pvmd3 $(DOBJ) $(SOCKDOBJ) $(LOPT) $(ARCHDLIB)
  211.  
  212. libpvm3.a:    $(REGEXDIR) $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
  213.     rm -f libpvm3.a
  214.     $(AR) cr libpvm3.a $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
  215.     case x$(HASRANLIB) in xt ) echo ranlib; ranlib libpvm3.a ;; esac
  216.  
  217. pvmd3-shm:    $(REGEXDIR) $(DOBJ) $(SHMEMDOBJ)
  218.     $(CC) $(CFLAGS) -o pvmd3 $(DOBJ) $(SHMEMDOBJ) $(ARCHDLIB)
  219.     touch pvmd3-shm
  220.  
  221. lib-shm:    $(REGEXDIR) $(LOBJ) $(LPVMSHMEM) $(SHMEMLOBJ)
  222.     rm -f libpvm3.a
  223.     $(AR) cr libpvm3.a $(LOBJ) $(LPVMSHMEM) $(SHMEMLOBJ)
  224.     case x$(HASRANLIB) in xt ) echo ranlib; ranlib libpvm3.a ;; esac
  225.     touch lib-shm
  226.  
  227. libpvm3s.a:    $(REGEXDIR) $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
  228.     rm -f libpvm3s.a
  229.     $(AR) cr libpvm3s.a $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ)
  230.     case x$(HASRANLIB) in xt ) echo ranlib; ranlib libpvm3s.a ;; esac
  231.  
  232. pvmd3-mpp:    $(REGEXDIR) $(DOBJ) $(MPPDOBJ)
  233.     $(CC) $(CFLAGS) -o pvmd3 $(DOBJ) $(MPPDOBJ) $(LOPT) $(ARCHDLIB)
  234.     touch pvmd3-mpp
  235.  
  236. libpvm3pe.a:    $(REGEXDIR) $(LOBJ) $(LPVMMIMD) $(MPPLOBJ)
  237.     rm -f libpvm3pe.a
  238.     $(AR) cr libpvm3pe.a $(LOBJ) $(LPVMMIMD) $(MPPLOBJ)
  239.  
  240. clean:    tidy
  241.     rm -f pvmd3 libpvm3.a libpvm3s.a libpvm3pe.a
  242.     rm -rf $(REGEXDIR)
  243.  
  244. tidy:
  245.     rm -f $(DOBJ) $(SOCKDOBJ) $(SHMEMDOBJ) $(MPPDOBJ) \
  246.         $(LOBJ) $(LPVMSOCK) $(SOCKLOBJ) $(LPVMSHMEM) $(SHMEMLOBJ) \
  247.         $(LPVMMIMD) $(MPPLOBJ) $(REGEXDIR)/*.o \
  248.         pvmd3-shm lib-shm pvmd3-mpp
  249.  
  250. lint:    lintd lintl
  251.  
  252. lintd:
  253.     lint -DARCHCLASS=\"$(PVM_ARCH)\" \
  254.         ddpro.c host.c hoster.c imalloc.c pkt.c pmsg.c \
  255.         pvmalloc.c pvmcruft.c pvmd.c pvmdtev.c pvmfrag.c pvmlog.c \
  256.         task.c tdpro.c waitc.c global.c > Ld
  257.  
  258. lintl:
  259.     lint -I$(PVMDIR)/include \
  260.         lpvm.c lpvmshmem.c lpvmmimd.c \
  261.         imalloc.c lpvmcat.c lpvmgen.c lpvmpack.c lpvmglob.c \
  262.         pvmalloc.c pvmcruft.c pvmerr.c pvmfrag.c tev.c global.c > Ll
  263.  
  264. amem.o:    $(SDIR)/amem.s
  265.     $(AS) -o amem.o $(SDIR)/amem.s
  266. ddpro.o:    $(SDIR)/ddpro.c
  267.     $(CC) $(CFLAGS) -c $(SDIR)/ddpro.c
  268. host.o:    $(SDIR)/host.c
  269.     $(CC) $(CFLAGS) -c $(SDIR)/host.c
  270. hoster.o:    $(SDIR)/hoster.c
  271.     $(CC) $(CFLAGS) -c $(SDIR)/hoster.c
  272. imalloc.o:    $(SDIR)/imalloc.c
  273.     $(CC) $(CFLAGS) -c $(SDIR)/imalloc.c
  274. lmsg.o:    $(SDIR)/lmsg.c
  275.     $(NODECC) $(CFLAGS) -DIMA_NODE -c $(SDIR)/lmsg.c
  276. lpvm.o:    $(SDIR)/lpvm.c
  277.     $(CC) $(CFLAGS) -c $(SDIR)/lpvm.c
  278. lpvmshmem.o:    $(SDIR)/lpvmshmem.c
  279.     $(CC) $(CFLAGS) -c $(SDIR)/lpvmshmem.c
  280. lpvmmimd.o:    $(SDIR)/lpvm.c
  281.     $(CC) $(CFLAGS) -DIMA_MPP -o lpvmmimd.o -c $(SDIR)/lpvm.c
  282. lpvmmpp.o:    $(SDIR)/lpvmmpp.c
  283.     $(NODECC) $(CFLAGS) -DIMA_MPP -c $(SDIR)/lpvmmpp.c
  284. lpvmcat.o:    $(SDIR)/lpvmcat.c
  285.     $(CC) $(CFLAGS) -c $(SDIR)/lpvmcat.c
  286. lpvmgen.o:    $(SDIR)/lpvmgen.c
  287.     $(CC) $(CFLAGS) -c $(SDIR)/lpvmgen.c
  288. lpvmpack.o:    $(SDIR)/lpvmpack.c
  289.     $(CC) $(CFLAGS) -c $(SDIR)/lpvmpack.c
  290. lpvmglob.o:    $(SDIR)/lpvmglob.c
  291.     $(CC) $(CFLAGS) -c $(SDIR)/lpvmglob.c
  292. msgbox.o:    $(SDIR)/msgbox.c
  293.     $(CC) $(CFLAGS) -c $(SDIR)/msgbox.c
  294. mppchunkhost.o:    $(SDIR)/mppchunk.c
  295.     $(CC) $(CFLAGS) -c -o mppchunkhost.o $(SDIR)/mppchunk.c
  296. mppchunknode.o:    $(SDIR)/mppchunk.c
  297.     $(NODECC) $(CFLAGS) -DIMA_NODE -c -o mppchunknode.o $(SDIR)/mppchunk.c
  298. mppmsghost.o:    $(SDIR)/mppmsg.c
  299.     $(CC) $(CFLAGS) -c -o mppmsghost.o $(SDIR)/mppmsg.c
  300. mppmsgnode.o:    $(SDIR)/mppmsg.c
  301.     $(NODECC) $(CFLAGS) -DIMA_NODE -c -o mppmsgnode.o $(SDIR)/mppmsg.c
  302. nmdclass.o:    $(SDIR)/nmdclass.c
  303.     $(CC) $(CFLAGS) -c $(SDIR)/nmdclass.c
  304. pkt.o:    $(SDIR)/pkt.c
  305.     $(CC) $(CFLAGS) -c $(SDIR)/pkt.c
  306. pmsg.o:    $(SDIR)/pmsg.c
  307.     $(CC) $(CFLAGS) -c $(SDIR)/pmsg.c
  308. pvmalloc.o:    $(SDIR)/pvmalloc.c
  309.     $(CC) $(CFLAGS) -c $(SDIR)/pvmalloc.c
  310. pvmcruft.o:    $(SDIR)/pvmcruft.c
  311.     $(CC) $(CFLAGS) -c $(SDIR)/pvmcruft.c
  312. pvmd.o:    $(SDIR)/pvmd.c
  313.     $(CC) $(CFLAGS) -c $(SDIR)/pvmd.c
  314. pvmdabuf.o:    $(SDIR)/pvmdabuf.c
  315.     $(CC) $(CFLAGS) -c $(SDIR)/pvmdabuf.c
  316. pvmdshmem.o:    $(SDIR)/pvmdshmem.c
  317.     $(CC) $(CFLAGS) -c $(SDIR)/pvmdshmem.c
  318. pvmdmimd.o:    pvmdmimd.c
  319.     $(CC) $(CFLAGS) -I..  -c pvmdmimd.c
  320. pvmdpack.o:    $(SDIR)/pvmdpack.c
  321.     $(CC) $(CFLAGS) -c $(SDIR)/pvmdpack.c
  322. pvmdunix.o:    $(SDIR)/pvmdunix.c
  323.     $(CC) $(CFLAGS) -c $(SDIR)/pvmdunix.c
  324. pvmerr.o:    $(SDIR)/pvmerr.c
  325.     $(CC) $(CFLAGS) -c $(SDIR)/pvmerr.c
  326. pvmfrag.o:    $(SDIR)/pvmfrag.c
  327.     $(CC) $(CFLAGS) -c $(SDIR)/pvmfrag.c
  328. pvmlog.o:    $(SDIR)/pvmlog.c
  329.     $(CC) $(CFLAGS) -c $(SDIR)/pvmlog.c
  330. pvmshmem.o:    $(SDIR)/pvmshmem.c
  331.     $(CC) $(CFLAGS) -c $(SDIR)/pvmshmem.c
  332. pvmmpp.o:    $(SDIR)/pvmmpp.c
  333.     $(CC) $(CFLAGS) -c $(SDIR)/pvmmpp.c
  334. sdpro.o:    $(SDIR)/sdpro.c
  335.     $(CC) $(CFLAGS) -c $(SDIR)/sdpro.c
  336. task.o:    $(SDIR)/task.c
  337.     $(CC) $(CFLAGS) -c $(SDIR)/task.c
  338. tev.o:    $(SDIR)/tev.c
  339.     $(CC) $(CFLAGS) -c $(SDIR)/tev.c
  340. tdpro.o:    $(SDIR)/tdpro.c
  341.     $(CC) $(CFLAGS) -c $(SDIR)/tdpro.c
  342. waitc.o:    $(SDIR)/waitc.c
  343.     $(CC) $(CFLAGS) -c $(SDIR)/waitc.c
  344. pvmdtev.o:    $(SDIR)/pvmdtev.c
  345.     $(CC) $(CFLAGS) -c $(SDIR)/pvmdtev.c
  346. global.o:    $(SDIR)/global.c
  347.     $(CC) $(CFLAGS) -c $(SDIR)/global.c
  348.  
  349. pvmregex.o:    $(REGEXDIR)/pvmregex.o
  350.     cp $(REGEXDIR)/pvmregex.o .
  351. regex.o:    $(REGEXDIR)/regex.o
  352.     cp $(REGEXDIR)/regex.o .
  353. $(REGEXDIR)/pvmregex.o:    $(REGEXCP) $(REGEXDIR)/Makefile
  354.     cd $(REGEXDIR) ; make $(REGEXOPTS) pvmregex.o
  355. $(REGEXDIR)/regex.o:    $(REGEXCP) $(REGEXDIR)/Makefile
  356.     cd $(REGEXDIR) ; make $(REGEXOPTS) regex.o
  357. $(REGEXDIR)/Makefile:
  358.     cd $(REGEXDIR) ; CC=$(CC) ./configure
  359. $(REGEXCP):    $(REGEXSRC)
  360.     cp $(REGEXSRC) $(REGEXDIR)
  361. $(REGEXDIR):
  362.     @- mkdir $(REGEXDIR)
  363.  
  364. #
  365. # Source File Dependencies
  366. #
  367.  
  368. include $(PVMDEPPATH)$(SDIR)/pvmdep
  369.  
  370.